package com.elai.tags.domain;

import java.util.Date;
import java.util.List;

import com.elai.common.annotation.Excel;
import com.elai.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 用户标签对象 base_user_tags
 *
 * @author elai
 * @date 2021-06-27
 */
public class BaseUserTagsDO extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 创建类型 */
    @Excel(name = "创建类型")
    private Long buildType;

    /** 标签类型 */
    @Excel(name = "标签类型")
    private Integer tagType;

    /** 标签显示名 */
    @Excel(name = "标签显示名")
    private String displayName;


    private String tagsDescription;

    /** 标签名称 */
    @Excel(name = "标签名称")
    private String name;

    /** 更新方式 */
    @Excel(name = "更新方式")
    private String updateType;

    /** 状态 */
    @Excel(name = "状态")
    private String status;

    /** 最后计算状态 */
    @Excel(name = "最后计算状态")
    private String lastCalcStatus;

    /** 所属用户 */
    @Excel(name = "所属用户")
    private Long userId;

    /** 查询时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "查询时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date resultTime;

    /** 查询结果 */
    @Excel(name = "查询结果")
    private Long resultNum;

    private String tagsRule;

    public String getTagsDescription() {
        return tagsDescription;
    }

    public void setTagsDescription(String tagsDescription) {
        this.tagsDescription = tagsDescription;
    }

    public String getTagsRule() {
        return tagsRule;
    }

    public void setTagsRule(String tagsRule) {
        this.tagsRule = tagsRule;
    }
    //标签分层
    private List<BaseUserTagsLevelDO> tagsLevelList;

    public List<BaseUserTagsLevelDO> getTagsLevelList() {
        return tagsLevelList;
    }

    public void setTagsLevelList(List<BaseUserTagsLevelDO> tagsLevelList) {
        this.tagsLevelList = tagsLevelList;
    }

    public void setId(Long id)
    {
        this.id = id;
    }
    public Long getId()
    {
        return id;
    }

    public void setBuildType(Long buildType)
    {
        this.buildType = buildType;
    }
    public Long getBuildType()
    {
        return buildType;
    }

    public void setTagType(Integer tagType)
    {
        this.tagType = tagType;
    }
    public Integer getTagType()
    {
        return tagType;
    }

    public void setDisplayName(String displayName)
    {
        this.displayName = displayName;
    }
    public String getDisplayName()
    {
        return displayName;
    }

    public void setName(String name)
    {
        this.name = name;
    }
    public String getName()
    {
        return name;
    }

    public void setUpdateType(String updateType)
    {
        this.updateType = updateType;
    }
    public String getUpdateType()
    {
        return updateType;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }
    public String getStatus()
    {
        return status;
    }

    public void setLastCalcStatus(String lastCalcStatus)
    {
        this.lastCalcStatus = lastCalcStatus;
    }
    public String getLastCalcStatus()
    {
        return lastCalcStatus;
    }

    public void setUserId(Long userId)
    {
        this.userId = userId;
    }
    public Long getUserId()
    {
        return userId;
    }

    public void setResultTime(Date resultTime)
    {
        this.resultTime = resultTime;
    }
    public Date getResultTime()
    {
        return resultTime;
    }

    public void setResultNum(Long resultNum)
    {
        this.resultNum = resultNum;
    }
    public Long getResultNum()
    {
        return resultNum;
    }


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("buildType", getBuildType())
            .append("tagType", getTagType())
            .append("displayName", getDisplayName())
            .append("name", getName())
            .append("updateType", getUpdateType())
            .append("remark", getRemark())
            .append("status", getStatus())
            .append("lastCalcStatus", getLastCalcStatus())
            .append("userId", getUserId())
            .append("resultTime", getResultTime())
            .append("resultNum", getResultNum())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
